import asyncio
import json
import logging
from aiogram import F
from aiogram import Bot, Dispatcher, types
from aiogram.filters.command import Command
from auth_data import token
from main import check_new_models
from aiogram.utils.markdown import hide_link

# Включаем логирование, чтобы не пропустить важные сообщения
logging.basicConfig(level=logging.INFO)
# Объект бота
bot = Bot(token=token)
# Диспетчер
dp = Dispatcher()


@dp.message(Command("start"))
async def cmd_start(message: types.Message):
    kb = [
        [
            # types.KeyboardButton(text="Все модели"),
            types.KeyboardButton(text="Только новые модели")
        ],
    ]
    keyboard = types.ReplyKeyboardMarkup(
        keyboard=kb,
        resize_keyboard=True
        # input_field_placeholder="Выберите способ подачи"
    )
    await message.answer("Запусти поиск моделей", reply_markup=keyboard)


# # @dp.message(Command("all_models"))
# @dp.message(F.text.lower() == "все модели")
# async def get_models(message: types.Message):
#     with open("chiedocover.json") as file:
#         models_dict = json.load(file)
#
#     for k, v in sorted(models_dict.items()):
#         models = f"{v['picture']}\n" \
#                  f"{v['href']}\n" \
#                  f"{v['furniture_title']}\n"
#
#         await message.answer(models)


# @dp.message(Command("new_models"))
@dp.message(F.text.lower() == "только новые модели")
async def get_new_models(message: types.Message):
    new_models = check_new_models()

    if len(new_models) >= 1:
        for k, v in sorted(new_models.items()):
            models = f"{v['picture']}\n" \
                     f"{v['href']}\n" \
                     f"{v['furniture_title']}\n"

            await message.answer(models)
    else:
        await message.answer("Новых моделей пока нет")


# Запуск процесса поллинга новых апдейтов
async def main():
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())
